/*     */ package com.jcraft.jzlib;
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ final class InfBlocks
/*     */ {
/*     */   private static final int MANY = 1440;
/*     */   
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*  41 */   private static final int[] inflate_mask = { 0, 1, 
/*  42 */     3, 7, 15, 31, 63, 
/*  43 */     127, 255, 511, 1023, 2047, 
/*  44 */     4095, 8191, 16383, 32767, 65535 };
/*     */   
/*     */ 
/*  47 */   static final int[] border = {
/*  48 */     16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 };
/*     */   
/*     */   private static final int Z_OK = 0;
/*     */   
/*     */   private static final int Z_STREAM_END = 1;
/*     */   
/*     */   private static final int Z_NEED_DICT = 2;
/*     */   
/*     */   private static final int Z_ERRNO = -1;
/*     */   
/*     */   private static final int Z_STREAM_ERROR = -2;
/*     */   
/*     */   private static final int Z_DATA_ERROR = -3;
/*     */   
/*     */   private static final int Z_MEM_ERROR = -4;
/*     */   private static final int Z_BUF_ERROR = -5;
/*     */   private static final int Z_VERSION_ERROR = -6;
/*     */   private static final int TYPE = 0;
/*     */   private static final int LENS = 1;
/*     */   private static final int STORED = 2;
/*     */   private static final int TABLE = 3;
/*     */   private static final int BTREE = 4;
/*     */   private static final int DTREE = 5;
/*     */   private static final int CODES = 6;
/*     */   private static final int DRY = 7;
/*     */   private static final int DONE = 8;
/*     */   private static final int BAD = 9;
/*     */   int mode;
/*     */   int left;
/*     */   int table;
/*     */   int index;
/*     */   int[] blens;
/*  80 */   int[] bb = new int[1];
/*  81 */   int[] tb = new int[1];
/*     */   
/*  83 */   InfCodes codes = new InfCodes();
/*     */   
/*     */   int last;
/*     */   
/*     */   int bitk;
/*     */   
/*     */   int bitb;
/*     */   
/*     */   int[] hufts;
/*     */   byte[] window;
/*     */   int end;
/*     */   int read;
/*     */   int write;
/*     */   Object checkfn;
/*     */   long check;
/*  98 */   InfTree inftree = new InfTree();
/*     */   
/*     */   InfBlocks(ZStream z, Object checkfn, int w) {
/* 101 */     this.hufts = new int['რ'];
/* 102 */     this.window = new byte[w];
/* 103 */     this.end = w;
/* 104 */     this.checkfn = checkfn;
/* 105 */     this.mode = 0;
/* 106 */     reset(z, null);
/*     */   }
/*     */   
/*     */   void reset(ZStream z, long[] c) {
/* 110 */     if (c != null)
/* 111 */       c[0] = this.check;
/* 112 */     if ((this.mode == 4) || 
/*     */     
/* 114 */       (this.mode == 6)) {
/* 115 */       this.codes.free(z);
/*     */     }
/* 117 */     this.mode = 0;
/* 118 */     this.bitk = 0;
/* 119 */     this.bitb = 0;
/* 120 */     this.read = (this.write = 0);
/*     */     
/* 122 */     if (this.checkfn != null) {
/* 123 */       z.adler = (this.check = z._adler.adler32(0L, null, 0, 0));
/*     */     }
/*     */   }
/*     */   
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   int proc(ZStream z, int r)
/*     */   {
/* 137 */     int p = z.next_in_index;
/* 138 */     int n = z.avail_in;
/* 139 */     int b = this.bitb;
/* 140 */     int k = this.bitk;
/*     */     
/*     */ 
/* 143 */     int q = this.write;
/* 144 */     int m = q < this.read ? this.read - q - 1 : this.end - q;
/*     */     
/*     */ 
/*     */     for (;;)
/*     */     {
/* 149 */       switch (this.mode)
/*     */       {
/*     */       case 0: 
/* 152 */         while (k < 3) {
/* 153 */           if (n != 0) {
/* 154 */             r = 0;
/*     */           } else {
/* 156 */             this.bitb = b;
/* 157 */             this.bitk = k;
/* 158 */             z.avail_in = n;
/* 159 */             z.total_in += p - z.next_in_index;
/* 160 */             z.next_in_index = p;
/* 161 */             this.write = q;
/* 162 */             return inflate_flush(z, r);
/*     */           }
/*     */           
/* 165 */           n--;
/* 166 */           b |= (z.next_in[(p++)] & 0xFF) << k;
/* 167 */           k += 8;
/*     */         }
/* 169 */         int t = b & 0x7;
/* 170 */         this.last = (t & 0x1);
/*     */         
/* 172 */         switch (t >>> 1)
/*     */         {
/*     */         case 0: 
/* 175 */           b >>>= 3;
/* 176 */           k -= 3;
/*     */           
/* 178 */           t = k & 0x7;
/*     */           
/*     */ 
/* 181 */           b >>>= t;
/* 182 */           k -= t;
/*     */           
/* 184 */           this.mode = 1;
/* 185 */           break;
/*     */         
/*     */         case 1: 
/* 188 */           int[] bl = new int[1];
/* 189 */           int[] bd = new int[1];
/* 190 */           int[][] tl = new int[1][];
/* 191 */           int[][] td = new int[1][];
/*     */           
/* 193 */           InfTree.inflate_trees_fixed(bl, bd, tl, td, z);
/* 194 */           this.codes.init(bl[0], bd[0], tl[0], 0, td[0], 0, z);
/*     */           
/*     */ 
/*     */ 
/* 198 */           b >>>= 3;
/* 199 */           k -= 3;
/*     */           
/*     */ 
/* 202 */           this.mode = 6;
/* 203 */           break;
/*     */         
/*     */ 
/*     */         case 2: 
/* 207 */           b >>>= 3;
/* 208 */           k -= 3;
/*     */           
/*     */ 
/* 211 */           this.mode = 3;
/* 212 */           break;
/*     */         
/*     */ 
/*     */         case 3: 
/* 216 */           b >>>= 3;
/* 217 */           k -= 3;
/*     */           
/* 219 */           this.mode = 9;
/* 220 */           z.msg = "invalid block type";
/* 221 */           r = -3;
/*     */           
/* 223 */           this.bitb = b;
/* 224 */           this.bitk = k;
/* 225 */           z.avail_in = n;
/* 226 */           z.total_in += p - z.next_in_index;
/* 227 */           z.next_in_index = p;
/* 228 */           this.write = q;
/* 229 */           return inflate_flush(z, r);
/*     */         }
/* 231 */         break;
/*     */       
/*     */       case 1: 
/* 234 */         while (k < 32) {
/* 235 */           if (n != 0) {
/* 236 */             r = 0;
/*     */           } else {
/* 238 */             this.bitb = b;
/* 239 */             this.bitk = k;
/* 240 */             z.avail_in = n;
/* 241 */             z.total_in += p - z.next_in_index;
/* 242 */             z.next_in_index = p;
/* 243 */             this.write = q;
/* 244 */             return inflate_flush(z, r);
/*     */           }
/*     */           
/* 247 */           n--;
/* 248 */           b |= (z.next_in[(p++)] & 0xFF) << k;
/* 249 */           k += 8;
/*     */         }
/*     */         
/* 252 */         if (((b ^ 0xFFFFFFFF) >>> 16 & 0xFFFF) != (b & 0xFFFF)) {
/* 253 */           this.mode = 9;
/* 254 */           z.msg = "invalid stored block lengths";
/* 255 */           r = -3;
/*     */           
/* 257 */           this.bitb = b;
/* 258 */           this.bitk = k;
/* 259 */           z.avail_in = n;
/* 260 */           z.total_in += p - z.next_in_index;
/* 261 */           z.next_in_index = p;
/* 262 */           this.write = q;
/* 263 */           return inflate_flush(z, r);
/*     */         }
/* 265 */         this.left = (b & 0xFFFF);
/* 266 */         b = k = 0;
/* 267 */         this.mode = (this.last != 0 ? 7 : this.left != 0 ? 2 : 0);
/* 268 */         break;
/*     */       case 2: 
/* 270 */         if (n == 0) {
/* 271 */           this.bitb = b;
/* 272 */           this.bitk = k;
/* 273 */           z.avail_in = n;
/* 274 */           z.total_in += p - z.next_in_index;
/* 275 */           z.next_in_index = p;
/* 276 */           this.write = q;
/* 277 */           return inflate_flush(z, r);
/*     */         }
/*     */         
/* 280 */         if (m == 0) {
/* 281 */           if ((q == this.end) && (this.read != 0)) {
/* 282 */             q = 0;
/* 283 */             m = q < this.read ? this.read - q - 1 : this.end - q;
/*     */           }
/* 285 */           if (m == 0) {
/* 286 */             this.write = q;
/* 287 */             r = inflate_flush(z, r);
/* 288 */             q = this.write;
/* 289 */             m = q < this.read ? this.read - q - 1 : this.end - q;
/* 290 */             if ((q == this.end) && (this.read != 0)) {
/* 291 */               q = 0;
/* 292 */               m = q < this.read ? this.read - q - 1 : this.end - q;
/*     */             }
/* 294 */             if (m == 0) {
/* 295 */               this.bitb = b;
/* 296 */               this.bitk = k;
/* 297 */               z.avail_in = n;
/* 298 */               z.total_in += p - z.next_in_index;
/* 299 */               z.next_in_index = p;
/* 300 */               this.write = q;
/* 301 */               return inflate_flush(z, r);
/*     */             }
/*     */           }
/*     */         }
/* 305 */         r = 0;
/*     */         
/* 307 */         int t = this.left;
/* 308 */         if (t > n)
/* 309 */           t = n;
/* 310 */         if (t > m)
/* 311 */           t = m;
/* 312 */         System.arraycopy(z.next_in, p, this.window, q, t);
/* 313 */         p += t;
/* 314 */         n -= t;
/* 315 */         q += t;
/* 316 */         m -= t;
/* 317 */         if (this.left -= t == 0)
/*     */         {
/* 319 */           this.mode = (this.last != 0 ? 7 : 0); }
/* 320 */         break;
/*     */       
/*     */       case 3: 
/* 323 */         while (k < 14) {
/* 324 */           if (n != 0) {
/* 325 */             r = 0;
/*     */           } else {
/* 327 */             this.bitb = b;
/* 328 */             this.bitk = k;
/* 329 */             z.avail_in = n;
/* 330 */             z.total_in += p - z.next_in_index;
/* 331 */             z.next_in_index = p;
/* 332 */             this.write = q;
/* 333 */             return inflate_flush(z, r);
/*     */           }
/*     */           
/* 336 */           n--;
/* 337 */           b |= (z.next_in[(p++)] & 0xFF) << k;
/* 338 */           k += 8;
/*     */         }
/*     */         
/* 341 */         this.table = (t = b & 0x3FFF);
/* 342 */         if (((t & 0x1F) > 29) || ((t >> 5 & 0x1F) > 29)) {
/* 343 */           this.mode = 9;
/* 344 */           z.msg = "too many length or distance symbols";
/* 345 */           r = -3;
/*     */           
/* 347 */           this.bitb = b;
/* 348 */           this.bitk = k;
/* 349 */           z.avail_in = n;
/* 350 */           z.total_in += p - z.next_in_index;
/* 351 */           z.next_in_index = p;
/* 352 */           this.write = q;
/* 353 */           return inflate_flush(z, r);
/*     */         }
/* 355 */         int t = 258 + (t & 0x1F) + (t >> 5 & 0x1F);
/* 356 */         if ((this.blens == null) || (this.blens.length < t)) {
/* 357 */           this.blens = new int[t];
/*     */         } else {
/* 359 */           for (int i = 0; i < t; i++) {
/* 360 */             this.blens[i] = 0;
/*     */           }
/*     */         }
/*     */         
/*     */ 
/* 365 */         b >>>= 14;
/* 366 */         k -= 14;
/*     */         
/*     */ 
/* 369 */         this.index = 0;
/* 370 */         this.mode = 4;
/*     */       case 4: 
/*     */         break label1515;
/*     */         
/* 374 */         if (n != 0) {
/* 375 */           r = 0;
/*     */         } else {
/* 377 */           this.bitb = b;
/* 378 */           this.bitk = k;
/* 379 */           z.avail_in = n;
/* 380 */           z.total_in += p - z.next_in_index;
/* 381 */           z.next_in_index = p;
/* 382 */           this.write = q;
/* 383 */           return inflate_flush(z, r);
/*     */         }
/*     */         
/* 386 */         n--;
/* 387 */         b |= (z.next_in[(p++)] & 0xFF) << k;
/* 372 */         while (this.index < 4 + (this.table >>> 10)) {
/* 373 */           while (k < 3) {}
/*     */           
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/* 391 */           this.blens[border[(this.index++)]] = (b & 0x7);
/*     */           
/*     */ 
/* 394 */           b >>>= 3;
/* 395 */           k -= 3;
/*     */         }
/*     */         
/*     */ 
/* 399 */         while (this.index < 19) {
/* 400 */           this.blens[border[(this.index++)]] = 0;
/*     */         }
/*     */         
/* 403 */         this.bb[0] = 7;
/* 404 */         int t = this.inftree.inflate_trees_bits(this.blens, this.bb, this.tb, this.hufts, z);
/* 405 */         if (t != 0) {
/* 406 */           r = t;
/* 407 */           if (r == -3) {
/* 408 */             this.blens = null;
/* 409 */             this.mode = 9;
/*     */           }
/*     */           
/* 412 */           this.bitb = b;
/* 413 */           this.bitk = k;
/* 414 */           z.avail_in = n;
/* 415 */           z.total_in += p - z.next_in_index;
/* 416 */           z.next_in_index = p;
/* 417 */           this.write = q;
/* 418 */           return inflate_flush(z, r);
/*     */         }
/*     */         
/* 421 */         this.index = 0;
/* 422 */         this.mode = 5;
/*     */       case 5: 
/*     */         for (;;) {
/* 425 */           int t = this.table;
/* 426 */           if (this.index >= 258 + (t & 0x1F) + (t >> 5 & 0x1F)) {
/*     */             break;
/*     */           }
/*     */           
/*     */ 
/*     */ 
/*     */ 
/* 433 */           t = this.bb[0];
/*     */           
/* 435 */           while (k < t) {
/* 436 */             if (n != 0) {
/* 437 */               r = 0;
/*     */             } else {
/* 439 */               this.bitb = b;
/* 440 */               this.bitk = k;
/* 441 */               z.avail_in = n;
/* 442 */               z.total_in += p - z.next_in_index;
/* 443 */               z.next_in_index = p;
/* 444 */               this.write = q;
/* 445 */               return inflate_flush(z, r);
/*     */             }
/*     */             
/* 448 */             n--;
/* 449 */             b |= (z.next_in[(p++)] & 0xFF) << k;
/* 450 */             k += 8;
/*     */           }
/*     */           
/* 453 */           this.tb[0];
/*     */           
/*     */ 
/*     */ 
/* 457 */           t = this.hufts[((this.tb[0] + (b & inflate_mask[t])) * 3 + 1)];
/* 458 */           int c = this.hufts[((this.tb[0] + (b & inflate_mask[t])) * 3 + 2)];
/*     */           
/* 460 */           if (c < 16) {
/* 461 */             b >>>= t;
/* 462 */             k -= t;
/* 463 */             this.blens[(this.index++)] = c;
/*     */           } else {
/* 465 */             int i = c == 18 ? 7 : c - 14;
/* 466 */             int j = c == 18 ? 11 : 3;
/*     */             
/* 468 */             while (k < t + i) {
/* 469 */               if (n != 0) {
/* 470 */                 r = 0;
/*     */               } else {
/* 472 */                 this.bitb = b;
/* 473 */                 this.bitk = k;
/* 474 */                 z.avail_in = n;
/* 475 */                 z.total_in += p - z.next_in_index;
/* 476 */                 z.next_in_index = p;
/* 477 */                 this.write = q;
/* 478 */                 return inflate_flush(z, r);
/*     */               }
/*     */               
/* 481 */               n--;
/* 482 */               b |= (z.next_in[(p++)] & 0xFF) << k;
/* 483 */               k += 8;
/*     */             }
/*     */             
/* 486 */             b >>>= t;
/* 487 */             k -= t;
/*     */             
/* 489 */             j += (b & inflate_mask[i]);
/*     */             
/* 491 */             b >>>= i;
/* 492 */             k -= i;
/*     */             
/* 494 */             i = this.index;
/* 495 */             t = this.table;
/* 496 */             if ((i + j > 258 + (t & 0x1F) + (t >> 5 & 0x1F)) || (
/* 497 */               (c == 16) && (i < 1))) {
/* 498 */               this.blens = null;
/* 499 */               this.mode = 9;
/* 500 */               z.msg = "invalid bit length repeat";
/* 501 */               r = -3;
/*     */               
/* 503 */               this.bitb = b;
/* 504 */               this.bitk = k;
/* 505 */               z.avail_in = n;
/* 506 */               z.total_in += p - z.next_in_index;
/* 507 */               z.next_in_index = p;
/* 508 */               this.write = q;
/* 509 */               return inflate_flush(z, r);
/*     */             }
/*     */             
/* 512 */             c = c == 16 ? this.blens[(i - 1)] : 0;
/*     */             do {
/* 514 */               this.blens[(i++)] = c;
/* 515 */               j--; } while (j != 0);
/* 516 */             this.index = i;
/*     */           }
/*     */         }
/*     */         
/* 520 */         this.tb[0] = -1;
/*     */         
/* 522 */         int[] bl = new int[1];
/* 523 */         int[] bd = new int[1];
/* 524 */         int[] tl = new int[1];
/* 525 */         int[] td = new int[1];
/* 526 */         bl[0] = 9;
/* 527 */         bd[0] = 6;
/*     */         
/* 529 */         int t = this.table;
/* 530 */         t = this.inftree.inflate_trees_dynamic(257 + (t & 0x1F), 
/* 531 */           1 + (t >> 5 & 0x1F), this.blens, bl, bd, tl, td, 
/* 532 */           this.hufts, z);
/*     */         
/* 534 */         if (t != 0) {
/* 535 */           if (t == -3) {
/* 536 */             this.blens = null;
/* 537 */             this.mode = 9;
/*     */           }
/* 539 */           r = t;
/*     */           
/* 541 */           this.bitb = b;
/* 542 */           this.bitk = k;
/* 543 */           z.avail_in = n;
/* 544 */           z.total_in += p - z.next_in_index;
/* 545 */           z.next_in_index = p;
/* 546 */           this.write = q;
/* 547 */           return inflate_flush(z, r);
/*     */         }
/* 549 */         this.codes.init(bl[0], bd[0], this.hufts, tl[0], this.hufts, td[0], z);
/*     */         
/* 551 */         this.mode = 6;
/*     */       case 6:  label1515:
/* 553 */         this.bitb = b;
/* 554 */         this.bitk = k;
/* 555 */         z.avail_in = n;
/* 556 */         z.total_in += p - z.next_in_index;
/* 557 */         z.next_in_index = p;
/* 558 */         this.write = q;
/*     */         
/* 560 */         if ((r = this.codes.proc(this, z, r)) != 1) {
/* 561 */           return inflate_flush(z, r);
/*     */         }
/* 563 */         r = 0;
/* 564 */         this.codes.free(z);
/*     */         
/* 566 */         p = z.next_in_index;
/* 567 */         n = z.avail_in;
/* 568 */         b = this.bitb;
/* 569 */         k = this.bitk;
/* 570 */         q = this.write;
/* 571 */         m = q < this.read ? this.read - q - 1 : this.end - q;
/*     */         
/* 573 */         if (this.last != 0) break label2625;
/* 574 */         this.mode = 0; }
/*     */     }
/*     */     label2625:
/* 577 */     this.mode = 7;
/*     */     
/* 579 */     this.write = q;
/* 580 */     r = inflate_flush(z, r);
/* 581 */     q = this.write;
/* 582 */     m = q < this.read ? this.read - q - 1 : this.end - q;
/* 583 */     if (this.read != this.write) {
/* 584 */       this.bitb = b;
/* 585 */       this.bitk = k;
/* 586 */       z.avail_in = n;
/* 587 */       z.total_in += p - z.next_in_index;
/* 588 */       z.next_in_index = p;
/* 589 */       this.write = q;
/* 590 */       return inflate_flush(z, r);
/*     */     }
/* 592 */     this.mode = 8;
/*     */     
/* 594 */     r = 1;
/*     */     
/* 596 */     this.bitb = b;
/* 597 */     this.bitk = k;
/* 598 */     z.avail_in = n;
/* 599 */     z.total_in += p - z.next_in_index;
/* 600 */     z.next_in_index = p;
/* 601 */     this.write = q;
/* 602 */     return inflate_flush(z, r);
/*     */     
/* 604 */     r = -3;
/*     */     
/* 606 */     this.bitb = b;
/* 607 */     this.bitk = k;
/* 608 */     z.avail_in = n;
/* 609 */     z.total_in += p - z.next_in_index;
/* 610 */     z.next_in_index = p;
/* 611 */     this.write = q;
/* 612 */     return inflate_flush(z, r);
/*     */     
/*     */ 
/* 615 */     r = -2;
/*     */     
/* 617 */     this.bitb = b;
/* 618 */     this.bitk = k;
/* 619 */     z.avail_in = n;
/* 620 */     z.total_in += p - z.next_in_index;
/* 621 */     z.next_in_index = p;
/* 622 */     this.write = q;
/* 623 */     return inflate_flush(z, r);
/*     */   }
/*     */   
/*     */ 
/*     */   void free(ZStream z)
/*     */   {
/* 629 */     reset(z, null);
/* 630 */     this.window = null;
/* 631 */     this.hufts = null;
/*     */   }
/*     */   
/*     */   void set_dictionary(byte[] d, int start, int n)
/*     */   {
/* 636 */     System.arraycopy(d, start, this.window, 0, n);
/* 637 */     this.read = (this.write = n);
/*     */   }
/*     */   
/*     */ 
/*     */   int sync_point()
/*     */   {
/* 643 */     return this.mode == 1 ? 1 : 0;
/*     */   }
/*     */   
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   int inflate_flush(ZStream z, int r)
/*     */   {
/* 653 */     int p = z.next_out_index;
/* 654 */     int q = this.read;
/*     */     
/*     */ 
/* 657 */     int n = (q <= this.write ? this.write : this.end) - q;
/* 658 */     if (n > z.avail_out)
/* 659 */       n = z.avail_out;
/* 660 */     if ((n != 0) && (r == -5)) {
/* 661 */       r = 0;
/*     */     }
/*     */     
/* 664 */     z.avail_out -= n;
/* 665 */     z.total_out += n;
/*     */     
/*     */ 
/* 668 */     if (this.checkfn != null) {
/* 669 */       z.adler = (this.check = z._adler.adler32(this.check, this.window, q, n));
/*     */     }
/*     */     
/* 672 */     System.arraycopy(this.window, q, z.next_out, p, n);
/* 673 */     p += n;
/* 674 */     q += n;
/*     */     
/*     */ 
/* 677 */     if (q == this.end)
/*     */     {
/* 679 */       q = 0;
/* 680 */       if (this.write == this.end) {
/* 681 */         this.write = 0;
/*     */       }
/*     */       
/* 684 */       n = this.write - q;
/* 685 */       if (n > z.avail_out)
/* 686 */         n = z.avail_out;
/* 687 */       if ((n != 0) && (r == -5)) {
/* 688 */         r = 0;
/*     */       }
/*     */       
/* 691 */       z.avail_out -= n;
/* 692 */       z.total_out += n;
/*     */       
/*     */ 
/* 695 */       if (this.checkfn != null) {
/* 696 */         z.adler = (this.check = z._adler.adler32(this.check, this.window, q, n));
/*     */       }
/*     */       
/* 699 */       System.arraycopy(this.window, q, z.next_out, p, n);
/* 700 */       p += n;
/* 701 */       q += n;
/*     */     }
/*     */     
/*     */ 
/* 705 */     z.next_out_index = p;
/* 706 */     this.read = q;
/*     */     
/*     */ 
/* 709 */     return r;
/*     */   }
/*     */ }


/* Location:              D:\Program Files\DBMS_20150813\jdbc\Dm7JdbcDriver17.jar!\com\jcraft\jzlib\InfBlocks.class
 * Java compiler version: 2 (46.0)
 * JD-Core Version:       0.7.1
 */